import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

public class Cerdo extends Animal
{
    /**
     *  clase Cerdo, de la clase padre animal, efectua el movimiento del cerdo y hace las
     *  comparaciones de las vidas al momento de tocarlo un disparo se hace el llamado del 
     *  metodo quitaVida() del mundo.
     */    

    protected static final int distancia=3;
    protected boolean disp;
    private MiMundo mundo;
    int cont=0;
    int s=3;
    Actor disparo;

    /**
     *  en este metodo se hace el moviemiento del animal el cual tiene los limites definidos
     *  en el mundo, tambien reinicia el progeso del animal al momento de que lo toque una bala
     *  al inicio del escenario.
     */
    public void act() 
    {
        MiMundo Mundo=(MiMundo)getWorld();
        
        if(tocaDisparo()) {
            ChecaImpacto();
        }
        
         if(getX()<900)
            {
             setImage("pig.png");
             setLocation(getX()+distancia, getY());
             s--;
            }
            else if(cont!=3)
            {
                setLocation(0,getY());
                cont++;
                s--;
                mundo.QuitaPig();
            }
            else
            Mundo.nivel_2();
     }
       
    /**
     *  metodo para agregarlo en el mundo
     */
    public void addedToWorld(World world) {
        mundo = (MiMundo) world;        
    }
    
  
    /**
     *  metodo el cual hace una condicion si el animal es o no tocado por el disparo y
     *  entra a otro metodo de ChecaImpacto() para hacer las acciones correspodientes
     *  como quitar vida.
     */
     public boolean tocaDisparo()
    {
        Actor Disparo = getOneObjectAtOffset(0, 0, Disparo.class);
        if(Disparo != null) {
            return true;
        }
        else {
            return false;
        }
    }
    
     private void ChecaImpacto()
    {
            Actor Disparo = getOneObjectAtOffset(0, 0, Disparo.class);
            if(Disparo != null) {
            // eat the leaf...
            getWorld().removeObject(Disparo);
            setLocation(0,getY());
            mundo.QuitaVida();
        }
    }
    
}